//用于生成测试样例
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <vector>

// 定义矩阵大小
int NUM_EMPLOYEES;  // 员工数
int NUM_TASKS;       // 任务数

// 生成一个在[min, max]之间的随机整数
int randInt(int min, int max)
{
    return min + rand() % (max - min + 1);
}

// 生成一个不满意程度矩阵
void generateDissatisfactionMatrix(const std::string& filename)
{
    std::ofstream outFile(filename);
    if (!outFile)
    {
        std::cerr << "无法打开文件 " << filename << " 进行写入。" << std::endl;
        return;
    }

    NUM_TASKS = randInt(1, 6);
    NUM_EMPLOYEES = 2 * NUM_TASKS;  //员工数量是任务数量的两倍

    outFile << NUM_EMPLOYEES << "\n" << NUM_TASKS << std::endl;

    // 随机生成每个员工在每个任务上的不满意程度
    for (int i = 0; i < NUM_EMPLOYEES; ++i)
    {
        for (int j = 0; j < NUM_TASKS; ++j)
        {
            int dissatisfaction = randInt(0, 10);  // 随机生成0到10之间的数
            outFile << dissatisfaction;
            if (j < NUM_TASKS - 1) outFile << " ";  // 每行的数字之间用空格分隔
        }
        outFile << std::endl;
    }

    std::cout << "不满意程度矩阵已生成： " << filename << std::endl;
}

int main()
{
    // 设置随机数种子
    srand(static_cast<unsigned int>(time(0)));

    // 生成不满意程度矩阵
    generateDissatisfactionMatrix("dissatisfaction_matrix.txt");

    return 0;
}
